namespace WindowsAPI
{
    /// <summary>Options available when a form is tested for mose positions.</summary>
    public enum WindowHitTestRegions
    {
        /// <summary>HTERROR: On the screen background or on a dividing line between windows 
        /// (same as HTNOWHERE, except that the DefWindowProc function produces a system 
        /// beep to indicate an error).</summary>
        Error = -2,
        /// <summary>HTTRANSPARENT: In a window currently covered by another window in the 
        /// same thread (the message will be sent to underlying windows in the same thread 
        /// until one of them returns a code that is not HTTRANSPARENT).</summary>
        TransparentOrCovered = -1,
        /// <summary>HTNOWHERE: On the screen background or on a dividing line between 
        /// windows.</summary>
        NoWhere = 0,
        /// <summary>HTCLIENT: In a client area.</summary>
        ClientArea = 1,
        /// <summary>HTCAPTION: In a title bar.</summary>
        TitleBar = 2,
        /// <summary>HTSYSMENU: In a window menu or in a Close button in a child window.</summary>
        SystemMenu = 3,
        /// <summary>HTGROWBOX: In a size box (same as HTSIZE).</summary>
        GrowBox = 4,
        /// <summary>HTMENU: In a menu.</summary>
        Menu = 5,
        /// <summary>HTHSCROLL: In a horizontal scroll bar.</summary>
        HorizontalScrollBar = 6,
        /// <summary>HTVSCROLL: In the vertical scroll bar.</summary>
        VerticalScrollBar = 7,
        /// <summary>HTMINBUTTON: In a Minimize button. </summary>
        MinimizeButton = 8,
        /// <summary>HTMAXBUTTON: In a Maximize button.</summary>
        MaximizeButton = 9,
        /// <summary>HTLEFT: In the left border of a resizable window (the user can click 
        /// the mouse to resize the window horizontally).</summary>
        LeftSizeableBorder = 10,
        /// <summary>HTRIGHT: In the right border of a resizable window (the user can click 
        /// the mouse to resize the window horizontally).</summary>
        RightSizeableBorder = 11,
        /// <summary>HTTOP: In the upper-horizontal border of a window.</summary>
        TopSizeableBorder = 12,
        /// <summary>HTTOPLEFT: In the upper-left corner of a window border.</summary>
        TopLeftSizeableCorner = 13,
        /// <summary>HTTOPRIGHT: In the upper-right corner of a window border.</summary>
        TopRightSizeableCorner = 14,
        /// <summary>HTBOTTOM: In the lower-horizontal border of a resizable window (the 
        /// user can click the mouse to resize the window vertically).</summary>
        BottomSizeableBorder = 15,
        /// <summary>HTBOTTOMLEFT: In the lower-left corner of a border of a resizable 
        /// window (the user can click the mouse to resize the window diagonally).</summary>
        BottomLeftSizeableCorner = 16,
        /// <summary>HTBOTTOMRIGHT: In the lower-right corner of a border of a resizable 
        /// window (the user can click the mouse to resize the window diagonally).</summary>
        BottomRightSizeableCorner = 17,
        /// <summary>HTBORDER: In the border of a window that does not have a sizing 
        /// border.</summary>
        NonSizableBorder = 18,
        /// <summary>HTOBJECT: Unknown...No Documentation Found</summary>
        Object = 19,
        /// <summary>HTCLOSE: In a Close button.</summary>
        CloseButton = 20,
        /// <summary>HTHELP: In a Help button.</summary>
        HelpButton = 21,
        /// <summary>HTSIZE: In a size box (same as HTGROWBOX). (Same as GrowBox).</summary>
        SizeBox = GrowBox,
        /// <summary>HTREDUCE: In a Minimize button. (Same as MinimizeButton).</summary>
        ReduceButton = MinimizeButton,
        /// <summary>HTZOOM: In a Maximize button. (Same as MaximizeButton).</summary>
        ZoomButton = MaximizeButton,
    }
}